{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<small><i>This notebook was put together by [Jake Vanderplas](http://www.vanderplas.com). Source and license info is on [GitHub](https://github.com/jakevdp/sklearn_tutorial/).</i></small>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Validation and Model Selection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this section, we'll look at *model evaluation* and the tuning of *hyperparameters*, which are parameters that define the model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/jakevdp/anaconda/envs/python3.5/lib/python3.5/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n",
      "  warnings.warn(self.msg_depr % (key, alt_key))\n"
     ]
    }
   ],
   "source": [
    "from __future__ import print_function, division\n",
    "\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Use seaborn for plotting defaults\n",
    "import seaborn as sns; sns.set()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Validating Models\n",
    "\n",
    "One of the most important pieces of machine learning is **model validation**: that is, checking how well your model fits a given dataset. But there are some pitfalls you need to watch out for.\n",
    "\n",
    "Consider the digits example we've been looking at previously. How might we check how well our model fits the data?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.datasets import load_digits\n",
    "digits = load_digits()\n",
    "X = digits.data\n",
    "y = digits.target"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's fit a K-neighbors classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "           metric_params=None, n_jobs=1, n_neighbors=1, p=2,\n",
       "           weights='uniform')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "knn = KNeighborsClassifier(n_neighbors=1)\n",
    "knn.fit(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we'll use this classifier to *predict* labels for the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "y_pred = knn.predict(X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we can check how well our prediction did:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1797 / 1797 correct\n"
     ]
    }
   ],
   "source": [
    "print(\"{0} / {1} correct\".format(np.sum(y == y_pred), len(y)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It seems we have a perfect classifier!\n",
    "\n",
    "**Question: what's wrong with this?**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Validation Sets\n",
    "\n",
    "Above we made the mistake of testing our data on the same set of data that was used for training. **This is not generally a good idea**. If we optimize our estimator this way, we will tend to **over-fit** the data: that is, we learn the noise.\n",
    "\n",
    "A better way to test a model is to use a hold-out set which doesn't enter the training. We've seen this before using scikit-learn's train/test split utility:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((1347, 64), (450, 64))"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.cross_validation import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y)\n",
    "X_train.shape, X_test.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we train on the training data, and validate on the test data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "445 / 450 correct\n"
     ]
    }
   ],
   "source": [
    "knn = KNeighborsClassifier(n_neighbors=1)\n",
    "knn.fit(X_train, y_train)\n",
    "y_pred = knn.predict(X_test)\n",
    "print(\"{0} / {1} correct\".format(np.sum(y_test == y_pred), len(y_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gives us a more reliable estimate of how our model is doing.\n",
    "\n",
    "The metric we're using here, comparing the number of matches to the total number of samples, is known as the **accuracy score**, and can be computed using the following routine:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.98888888888888893"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "accuracy_score(y_test, y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This can also be computed directly from the ``model.score`` method:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.98888888888888893"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using this, we can ask how this changes as we change the model parameters, in this case the number of neighbors:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 0.988888888889\n",
      "5 0.988888888889\n",
      "10 0.98\n",
      "20 0.966666666667\n",
      "30 0.966666666667\n"
     ]
    }
   ],
   "source": [
    "for n_neighbors in [1, 5, 10, 20, 30]:\n",
    "    knn = KNeighborsClassifier(n_neighbors)\n",
    "    knn.fit(X_train, y_train)\n",
    "    print(n_neighbors, knn.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We see that in this case, a small number of neighbors seems to be the best option."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cross-Validation\n",
    "\n",
    "One problem with validation sets is that you \"lose\" some of the data. Above, we've only used 3/4 of the data for the training, and used 1/4 for the validation. Another option is to use **2-fold cross-validation**, where we split the sample in half and perform the validation twice:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((898, 64), (899, 64))"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X1, X2, y1, y2 = train_test_split(X, y, test_size=0.5, random_state=0)\n",
    "X1.shape, X2.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.983296213808\n",
      "0.982202447164\n"
     ]
    }
   ],
   "source": [
    "print(KNeighborsClassifier(1).fit(X2, y2).score(X1, y1))\n",
    "print(KNeighborsClassifier(1).fit(X1, y1).score(X2, y2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Thus a two-fold cross-validation gives us two estimates of the score for that parameter.\n",
    "\n",
    "Because this is a bit of a pain to do by hand, scikit-learn has a utility routine to help:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.97614938602520218"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.cross_validation import cross_val_score\n",
    "cv = cross_val_score(KNeighborsClassifier(1), X, y, cv=10)\n",
    "cv.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### K-fold Cross-Validation\n",
    "\n",
    "Here we've used 2-fold cross-validation. This is just one specialization of $K$-fold cross-validation, where we split the data into $K$ chunks and perform $K$ fits, where each chunk gets a turn as the validation set.\n",
    "We can do this by changing the ``cv`` parameter above. Let's do 10-fold cross-validation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.93513514,  0.99453552,  0.97237569,  0.98888889,  0.96089385,\n",
       "        0.98882682,  0.99441341,  0.98876404,  0.97175141,  0.96590909])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(KNeighborsClassifier(1), X, y, cv=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gives us an even better idea of how well our model is doing."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overfitting, Underfitting and Model Selection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that we've gone over the basics of validation, and cross-validation, it's time to go into even more depth regarding model selection.\n",
    "\n",
    "The issues associated with validation and \n",
    "cross-validation are some of the most important\n",
    "aspects of the practice of machine learning.  Selecting the optimal model\n",
    "for your data is vital, and is a piece of the problem that is not often\n",
    "appreciated by machine learning practitioners.\n",
    "\n",
    "Of core importance is the following question:\n",
    "\n",
    "**If our estimator is underperforming, how should we move forward?**\n",
    "\n",
    "- Use simpler or more complicated model?\n",
    "- Add more features to each observed data point?\n",
    "- Add more training samples?\n",
    "\n",
    "The answer is often counter-intuitive.  In particular, **Sometimes using a\n",
    "more complicated model will give _worse_ results.**  Also, **Sometimes adding\n",
    "training data will not improve your results.**  The ability to determine\n",
    "what steps will improve your model is what separates the successful machine\n",
    "learning practitioners from the unsuccessful."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Illustration of the Bias-Variance Tradeoff\n",
    "\n",
    "For this section, we'll work with a simple 1D regression problem.  This will help us to\n",
    "easily visualize the data and the model, and the results generalize easily to  higher-dimensional\n",
    "datasets.  We'll explore a simple **linear regression** problem.\n",
    "This can be accomplished within scikit-learn with the `sklearn.linear_model` module.\n",
    "\n",
    "We'll create a simple nonlinear function that we'd like to fit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def test_func(x, err=0.5):\n",
    "    y = 10 - 1. / (x + 0.1)\n",
    "    if err > 0:\n",
    "        y = np.random.normal(y, err)\n",
    "    return y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's create a realization of this dataset:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def make_data(N=40, error=1.0, random_seed=1):\n",
    "    # randomly sample the data\n",
    "    np.random.seed(1)\n",
    "    X = np.random.random(N)[:, np.newaxis]\n",
    "    y = test_func(X.ravel(), error)\n",
    "    \n",
    "    return X, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeYAAAFVCAYAAAA6zUwUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGi9JREFUeJzt3X9wVOW9x/HPYhJWYVNQ4x86GCktttYZrFg1WqLTaSgd\nvJYUYo4hSWOnrUKljMANKvLDTpUxM9bei1BBptkCo5vSktaIk3Id2qV1MhWp0NJpmWmHEUs7TuoP\nEqJLNubcPyAhCbBJTs7Z8+w579dfJOE0369L97PPj/OciG3btgAAgBHG+V0AAAA4i2AGAMAgBDMA\nAAYhmAEAMAjBDACAQQhmAAAMMuJgPnTokGpqaiRJf/3rX7Vw4ULV1tbqW9/6lt577z3PCgQAIExG\nFMxbt27VY489pnQ6LUl68skntWbNGm3btk1lZWXasmWLp0UCABAWIwrm4uJibdy4sf/rZ555Rtde\ne60kqaenR+PHj/emOgAAQmZEwVxWVqaLLrqo/+vLL79ckvTHP/5RL7zwgurq6jwpDgCAsMlzeuEr\nr7yizZs3a8uWLZo8efKwf9+2bUUiEae/DgCAUHAUzL/61a/0s5/9TNu3b1dhYeGIrolEImpv73Ty\n63JeUVEstL1L9E//9B/W/sPcu3S6fydGHcy9vb168skndeWVV+q73/2uIpGIbr75Zj344IOOCgAA\nAGeNOJivuuoqJRIJSdIf/vAHzwoCACDMOGAEAACDEMwAABiEYAYAwCAEMwAABiGYAQAwCMEMAIBB\nCGYAAAxCMAMAYBCCGQAAgxDMAAAYhGAGAMAgBDMAAAYhmAEAMAjBDACAQQhmAAAMQjADAGAQghkA\nAIMQzAAAGCTP7wIAwC2pVEqJxD5JkmWVKhqN+lwRMHoEM4BASKVSqqxsVlvbfZKk5uZGNTWVE87I\nOUxlAwiERGLfmVDOl5Svtra6/tEzkEsIZgAADEIwAwgEyypVSUmjpG5J3SopicuySv0uCxg11pgB\nBEI0GlVTU7kSiRZJkmWxvozcRDADCIxoNKq6utl+lwGMCVPZAAAYhGAGAMAgBDMAAAYhmAEAMAjB\nDACAQQhmAAAMQjADAGAQghkAAINwwAgA+IzHVWIgghkAfMTjKjEUU9kA4CMeV4mhRhzMhw4dUk1N\njSTp2LFjqqqqUnV1tR5//HHPigMAIGxGFMxbt27VY489pnQ6LUlav369li1bph07dqi3t1evvvqq\np0UCQFDxuEoMNaJgLi4u1saNG/u//stf/qKbbrpJklRaWqq2tjZvqgOAgOt7XGVDQ4saGlpYX8bI\nNn+VlZXp+PHj/V/btt3/5wkTJqizs9P9ygAgJEx+XCU7xrPP0a7scePODrS7urpUWFg4ouuKimJO\nfl0ghLl3if7pn/5zUSqVUkXFTiWTp/cX7d69Xa2tVaMK51zt3U+Ogvm6667T/v379YUvfEH79u3T\nrbfeOqLr2tvDObIuKoqFtneJ/umf/nO1/3h8z5lQzpckJZPV2rChZcSj+1zu3Q1OP5Q4CuaVK1dq\n9erVSqfTmjZtmubMmePolwMAgMEi9sAFY4+F9ZMTnxrpn/7pPxedPfykTpJUUhIf1ea0XO7dDVkd\nMQMAgq9vx3gi0SJJsix2jGcDwQwAAeL2LmqTd4wHFcEMAAHBudvBwFnZABAQnLsdDAQzAAAGIZgB\n5JRUKqV4fI/i8T1KpVJ+l2MUzt0OBtaYAeQM1lAzYxd1MBDMQMjl0lnIg9dQdWYNdeQnUYUBu6hz\nH8EMhBgjUMA8rDEDIZZru3hZQ0UYMGIGkDNYQz0rl5YgMDoEMxBillWq5ubGQWchW1a5v0UNgzVU\nliCCjmAGQowRaG5iE1ywEcxAyDECzVUpSXvO/HmWn4XAZWz+AhAYYTl8ZN68m1VY+D+SZkuarcLC\n/9W8eTf7XRZcQjADWRSW4PBD37prff3dqq+/W5WVzYH9b/zLX76ujo6V6ttN39FRr1/+8nW/y4JL\nCGYgS8IUHH4w7davvg9hzz23m9cZo0IwA1liWnDAOwM/hC1aNNv1D2Hczx1sBDOAQDAprLz+ENa3\nm76hoUUNDS3cKhUw7MoGsiQX7xnOJWG79Yvd9MEVsW3bztYva2/vzNavMkpRUSy0vUv0P7D/MJ7W\nFMbX/+wBIHWSTn8IC+OoNoyv/UBFRTFH1zFiBrKIUY43TPvAM3D0HotFNXdu+EIZzhHMgA9MC5Jc\nZurxlH0fwsI+asTosfkLyDJum3JXWHe7c098cBHMQJaFNUjgHj7cBRvBDCCneXWblMkjUj7cBRtr\nzAgVE9Z2uW3KXV7cJmXqujXCgdulsiDsmz9M6X/om21JSXbebM/XvwkfELLFlNd/NOLxPaqvv1t9\nj1WUutXQ4Oyxil7079ftWKP9d5uLr72buF0KGIZJz7DltimMhR+HqTCLkD2sMcMzHOKPXGXS8Z4X\n0vfhrq5udlbCkXXt7GHEDE/4NW2cCWu7GKmwHe8Js7DGnAVhXGdxc43OTX6s7Ybx9R+I/oPRv5N1\n7aD07hRrzMAIsLYLOMMsQvYQzPAE08ZA8PDBNjsIZniCQ/xhqjDdqobcRDDDMxziD9Nwyw9ygaPb\npXp6erR8+XJZlqXq6modPXrU7boAwHXc8oNc4CiYk8mkent7lUgktHjxYj3zzDNu1wUAI2byudbA\naDkK5muuuUYff/yxbNtWZ2en8vPzh78IADwwmict5cLBIYCjNeYJEybon//8p+bMmaMPPvhAmzdv\ndrsuILDYfOSu0Ry1yi0/yAWOgjkej2vWrFl66KGH9M4776i2tlYtLS0qKCjIeJ3Tm62DIMy9S/Tf\n138qlVJFxU4lkzWSpN27t6u1tSrw4eDl6x+LnfvfLhaLZvidMf33f8/3rJ7zCfO//zD37pSjYP7E\nJz6hvLzTl8ZiMfX09Ki3t3fY68K6Mzfsu5Lp/2z/8fieM6F8enSXTFZrwwb/T0Tzktev/9y5N6uk\nZPA983Pnlhvzby7M//7D3LuU5ZO/vvGNb+jRRx/VwoUL+3doB/0TP3IfU8jBxPQ0goazsrOAT43+\n9+/nQzUG9u/Xc3T9ZMLr76cw9x/m3iXOygYyMuVZzIzuAAyHYAayLBfPG2YZAMgeR/cxA7mG+1eH\nd6FDOkZznzCAsWPEjFBgCjmzTGdIm7IMAIQFwYzQyMUp5GwhfAFzMJUNICOWAYDsYsQMZJmJG6ks\nq1TNzYMP6bCsckksAwDZRjAD5+FVeJr6PODhwpdlACB7CGZgCDfCc2CwL1kyt//7Jq/lEr6AGVhj\nBoYYHJ75Z8Jz34ivH3p70Zw5L3B7EYARI5gBlw0N9mSyetC0OBupAGTCVDYwRKaNUGPFRioAw+Eh\nFlnAQe651/9YNn8NfVDFHXfs0Pbt/xXaAM7F199NYe4/zL1LPMQCcNVYNkINHRUvWVKlzs60m+UB\nCDCCGfDAwGCPRqMEM4ARY/MXAAAGIZgBADAIwQwAgEEIZgAADEIwAwBgEIIZAACDEMwAABiEYAYA\nwCAEMwAABuHkLwTaWM68BgA/EMwIrLMPk7hPktTc3KimJp7mBMBsTGUjsIY+F7mtra5/9AwApiKY\nAQAwCMGMwLKsUpWUNErqltStkpK4LKvU77IAICPWmBFYQ5+LbFmsLwMwH8GMQBv4XGQAyAVMZQMA\nYBCCGQAAgxDMAAAYhGAGAMAgBDMAAAZxvCt7y5Yt2rt3r9LptKqqqjR//nw36wIAIJQcBfPrr7+u\nN998U4lEQh9++KF+8pOfuF0XAACh5CiYf//732v69OlavHixurq6VF9f73ZdAACEUsS2bXu0F61e\nvVr/+te/tHnzZr399ttatGiRWltbvagPAIBQcTRinjRpkqZNm6a8vDxNnTpV48eP13vvvadLL700\n43Xt7Z2Oisx1RUWxUPR+oWcfh6X/C6F/+g9r/2HuXTrdvxOOdmXPnDlTv/vd7yRJ77zzjlKplCZP\nnuyoAARD37OP6+vvVn393aqsbFYqlfK7LADIOY5GzHfeeafeeOMNLViwQLZta+3atYpEIm7Xhhwy\n+NnHOvPs4xbOqQaAUXJ8u9SKFSvcrAOGudC0NADAWxwwgnM4mZbm2ccA4A4e+4hzOJmWzvTs41Qq\npXh8z5nvM/oGgEwIZrjmfM8+TqVSqqjYqWSyRpLU3NyopqZywhkALoCpbJzDzWnpRGLfmVDOl5R/\nZvS9z8VqASBYGDHjHJmmpQEA3iKYcV7nm5Z2wrJKtXv3diWT1ZJ0ZvRdPub/XQAIKoIZnopGo2pt\nrdKGDYy+AWAkCOYAMu0eZLdG3wAQBgRzwPTdg3z6did2QQNArmFXdsAMvgeZXdAAkGsIZgAADEIw\nB0y2jsbsO80rHt/DU6QAwEWsMQfMWO9BHsnGMdaxAcA7BHMAOd0FPdLA5RGPAOAdprLRj41jAOA/\nghmjxiMeAcA7TGWjn2WVqrm5UW1tdZIufHwmZ2kDgHcI5gAZ64lfowlcTvMCAG8QzAHh1k5pAhcA\n/MUac0CwcQsAgoERc4Cl092Kx/dIMuNhFgCA4TFiDoihO6VvueV5tbScUH393aqvv1uVlc2c0AUA\nOYARc0AM3biVTl+mVavmi0NAACC3EMwBMnDjVt8UNgAgtzCVHVAcAgIAuYkRc0BxCAgA5CaCOcC4\nJxkAcg9T2QAAGIRgBgDAIAQzAAAGIZgBADAIwQwAgEEIZgAADEIwAwBgEIIZAACDEMwAABhkTMH8\n7rvv6s4779TRo0fdqgcAgFBzHMw9PT1au3Yt5y8DAOAix8H81FNP6d5779UVV1zhZj0AAISao4dY\n7Nq1S5dddpluv/12PffccyO+rqgo5uTXBUKYe5fon/7pP6zC3LtTEdu27dFeVF1drUgkIkn629/+\npqlTp+rHP/6xLrvssozXtbd3OqsyxxUVxS7YeyqVUiKxT9LpZygHcWkgU/9hQP/0H9b+w9y75PxD\niaMR844dO/r/XFNTo+9///vDhjLOlUqlVFnZrLa2+yRJzc2NamriuckAEGZjvl2qb+SM0Usk9p0J\n5XxJ+Wprq+sfPQMAwsnRiHmgbdu2uVEHAAAQB4z4yrJKVVLSKKlbUrdKSuKyrFK/ywIA+GjMI2Y4\nF41G1dRUrkSiRZJkWawvA0DYEcw+i0ajqqub7XcZAABDMJUNAIBBCGYAAAxCMAMAYBCCGQAAgxDM\nAAAYhGAGAMAgBDMAAAYhmAEAMAjBDACAQQhmAAAMQjADAGAQghkAAIMQzAAAGIRgBgDAIAQzAAAG\nIZgBADAIwQwAgEEIZgAADEIwAwBgEIIZAACDEMwAABiEYAYAwCAEMwAABsnzuwAMlkqllEjskyRZ\nVqmi0ajPFQEAsolgNkgqlVJlZbPa2u6TJDU3N6qpqZxwBoAQYSrbIInEvjOhnC8pX21tdf2jZwBA\nOBDMAAAYhGA2iGWVqqSkUVK3pG6VlMRlWaV+lwUAyCLWmA0SjUbV1FSuRKJFkmRZrC8DQNgQzIaJ\nRqOqq5vtdxkAAJ8wlQ0AgEEIZgAADOJoKrunp0ePPvqojh8/rnQ6rQceeEBf+tKX3K4tsDhEBABw\nIY6C+aWXXtLkyZPV0NCgEydOaN68eQTzCHGICAAgE0dT2V/96le1dOlSSVJvb6/y8thDNlIcIgIA\nyMRRol588cWSpJMnT2rp0qV66KGHXC0KAICwiti2bTu58N///rcefPBBVVdXq7y83O26AiuVSmnO\nnBeUTFZLku64Y4daW6uYygYASHIYzP/5z39UW1urNWvW6NZbbx3xde3tnaP9VYFQVBQb1HvYNn8N\n7T9s6J/+w9p/mHuXTvfvhKOp7M2bN6ujo0ObNm3Sxo0bFYlEtHXrVhUUFDgqImw4RAQAcCGOgnnV\nqlVatWqV27UAABB6HDACAIBBCGYAAAxCMAMAYBCCGQAAgxDMAAAYhGAGAMAgBDMAAAYhmAEAMAjB\nDACAQQhmAAAMQjADAGAQghkAAIMQzAAAGIRgBgDAIAQzAAAGIZgBADAIwQwAgEEIZgAADEIwAwBg\nEIIZAACDEMwAABiEYAYAwCAEMwAABiGYAQAwCMEMAIBBCGYAAAxCMAMAYBCCGQAAgxDMAAAYhGAG\nAMAgBDMAAAYhmAEAMAjBDACAQQhmAAAMQjADAGAQghkAAIPkObnItm2tW7dOR44cUUFBgZ544glN\nmTLF7doAAAgdRyPmV199Vd3d3UokElq+fLnWr1/vdl0AAISSo2A+cOCAZs2aJUmaMWOGDh8+7GpR\nAACElaNgPnnypGKxWP/XeXl56u3tda2oIEmlUnruud2Kx/colUr5XQ4AwHCO1pgnTpyorq6u/q97\ne3s1btzwGV9UFBv27wRJKpVSRcVOJZM1kqTdu7ertbVK0WjU58qyL2yv/VD0T/9hFebenXIUzDfe\neKN+85vfaM6cOTp48KCmT58+ouva2zud/LqcFY/vORPK+ZKkZLJaGza0qK5utr+FZVlRUSx0r/1A\n9E//Ye0/zL1Lzj+UOArmsrIyvfbaa7IsS5LY/AUAgEscBXMkEtHjjz/udi2BY1mlam5uVFtbnSSp\npCQuyyr3tygAgNEcBTNGJhqNqqmpXLt3/586O1OyrPJQri8DAEaOYPZYNBrVAw/MDfU6CwBg5DiS\nEwAAgxDMAAAYhGAGAMAgBDMAAAYhmAEAMAjBDACAQQhmAAAMQjADAGAQghkAAIMQzAAAGIRgBgDA\nIAQzAAAGIZgBADAIwQwAgEEIZgAADEIwAwBgEIIZAACDEMwAABiEYAYAwCAEMwAABiGYAQAwCMEM\nAIBBCGYAAAxCMAMAYBCCGQAAgxDMAAAYhGAGAMAgBDMAAAYhmAEAMAjBDACAQQhmAAAMQjADAGAQ\nghkAAIMQzAAAGCTPyUUnT57UihUr1NXVpXQ6rYcfflg33HCD27UBABA6joK5sbFRt912m2pra3X0\n6FEtX75cu3btcrs2AABCx1Ew33fffSooKJAk9fT0aPz48a4WBQBAWA0bzD//+c/105/+dND31q9f\nr+uvv17t7e2qr6/XqlWrPCsQAIAwidi2bTu58MiRI1qxYoVWrlypL37xi27XBQBAKDkK5r///e9a\nsmSJfvSjH+naa6/1oi4AAELJUTAvXrxYR44c0VVXXSXbtlVYWKiNGzd6UR8AAKHieCobAAC4jwNG\nAAAwCMEMAIBBCGYAAAxCMAMAYBBPgvnUqVP63ve+p4ULF+r+++/X+++/f87ficfjuueee1RZWRmY\nHd22bWvt2rWyLEu1tbV6++23B/187969WrBggSzL0s6dO32q0jvD9f/yyy/rnnvuUVVVldatW+dP\nkR4Zrvc+a9as0Q9/+MMsV+e94fr/05/+pIULF2rhwoVaunSpuru7farUG8P1/9JLL+nrX/+6Kioq\n9OKLL/pUpbcOHTqkmpqac74f9Pe9Phfq39H7nu2BxsZGe8OGDbZt2/bu3bvtH/zgB4N+fuzYMXv+\n/Pn9X1uWZR85csSLUrJqz5499sMPP2zbtm0fPHjQXrRoUf/P0um0XVZWZnd2dtrd3d32/Pnz7Xff\nfdevUj2Rqf9UKmWXlZXZp06dsm3btpctW2bv3bvXlzq9kKn3Pi+++KJdWVlpP/3009kuz3PD9f+1\nr33NPnbsmG3btr1z50776NGj2S7RU8P1f/vtt9sdHR12d3e3XVZWZnd0dPhRpmeef/55+6677rIr\nKysHfT8M73u2feH+nb7veTJiPnDggEpLSyVJpaWlamtrG/TzK6+8Ulu3bu3/OijnbR84cECzZs2S\nJM2YMUOHDx/u/9k//vEPFRcXa+LEicrPz9fMmTO1f/9+v0r1RKb+CwoKlEgkAnvGeqbeJenNN9/U\nn//8Z1mW5Ud5nsvU/9GjRzVp0iQ1NjaqpqZGJ06c0DXXXONTpd4Y7vX/zGc+oxMnTujUqVOSpEgk\nkvUavVRcXHzemc8wvO9JF+7f6fueo4dYDHS+s7Qvv/xyTZw4UZI0YcIEnTx5ctDPL7roIk2aNEmS\n9NRTT+m6665TcXHxWEvx3cmTJxWLxfq/zsvLU29vr8aNG3fOzyZMmKDOzk4/yvRMpv4jkYguvfRS\nSdL27dv10Ucf6bbbbvOrVNdl6r29vV3PPvusNm3apFdeecXHKr2Tqf/3339fBw8e1Nq1azVlyhTd\nf//9uv7663XLLbf4WLG7MvUvSZ/+9Kc1f/58XXLJJSorK+t/fwyKsrIyHT9+/Jzvh+F9T7pw/07f\n98YczAsWLNCCBQsGfW/JkiXq6uqSJHV1dQ16Yfp0d3frkUceUSwWC8x648SJE/v7ljTo/5gTJ04c\n9AGlq6tLhYWFWa/RS5n6l06vwzU0NOitt97Ss88+60eJnsnUe2trqz744AN9+9vfVnt7u06dOqVP\nfvKTmjdvnl/lui5T/5MmTdLVV1+tqVOnSpJmzZqlw4cPByqYM/V/5MgR/fa3v9XevXt1ySWXaMWK\nFfr1r3+tr3zlK36VmzVheN8bjpP3PU+msm+88UYlk0lJUjKZ1E033XTO31m0aJE++9nPat26dYGZ\n1hnY98GDBzV9+vT+n02bNk1vvfWWOjo61N3drf379+uGG27wq1RPZOpfklavXq10Oq1Nmzb1T+0E\nRabea2pq9Itf/ELbtm3Td77zHd11112BCmUpc/9TpkzRhx9+2L8h6sCBA/rUpz7lS51eydR/LBbT\nxRdfrIKCgv4RVEdHh1+lesoecpBkGN73Bhrav+TsfW/MI+bzuffee7Vy5UpVVVWpoKBATz/9tKTT\nO7GLi4v18ccf64033lA6nVYymVQkEtHy5cs1Y8YML8rJmrKyMr322mv964jr16/Xyy+/rI8++kgV\nFRV65JFH9M1vflO2bauiokJXXHGFzxW7K1P/n/vc57Rr1y7NnDlTNTU1ikQiqq2t1Ze//GWfq3bH\ncK990A3X/xNPPKFly5ZJkj7/+c/rjjvu8LNc1w3Xf9+u3IKCAl199dUqLy/3uWJv9A2ywvS+N9DQ\n/p2+73FWNgAABuGAEQAADEIwAwBgEIIZAACDEMwAABiEYAYAwCAEMwAABiGYAQAwyP8DdcS4X6UW\nooAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e36b390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X, y = make_data(40, error=1)\n",
    "plt.scatter(X.ravel(), y);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now say we want to perform a regression on this data.  Let's use the built-in linear regression function to compute a fit:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e35d0f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_test = np.linspace(-0.1, 1.1, 500)[:, None]\n",
    "\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.metrics import mean_squared_error\n",
    "model = LinearRegression()\n",
    "model.fit(X, y)\n",
    "y_test = model.predict(X_test)\n",
    "\n",
    "plt.scatter(X.ravel(), y)\n",
    "plt.plot(X_test.ravel(), y_test)\n",
    "plt.title(\"mean squared error: {0:.3g}\".format(mean_squared_error(model.predict(X), y)));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have fit a straight line to the data, but clearly this model is not a good choice.  We say that this model is **biased**, or that it **under-fits** the data.\n",
    "\n",
    "Let's try to improve this by creating a more complicated model.  We can do this by adding degrees of freedom, and computing a polynomial regression over the inputs. Scikit-learn makes this easy with the ``PolynomialFeatures`` preprocessor, which can be pipelined with a linear regression.\n",
    "\n",
    "Let's make a convenience routine to do this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.pipeline import make_pipeline\n",
    "\n",
    "def PolynomialRegression(degree=2, **kwargs):\n",
    "    return make_pipeline(PolynomialFeatures(degree),\n",
    "                         LinearRegression(**kwargs))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we'll use this to fit a quadratic curve to the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nNcWU9z2L7Mru168fEhMTAQCJiYkYMGDAbY958skn0aNHD7z55pt2s1unbt8nTpxAt27dau8LDw9H\nRkYGysrKoNVqceTIEbu7hnVj/QPA3//+d+h0Oixfvrx21469aKz3OXPm4IcffsDXX3+Nxx57DGPH\njrWrUAYa779jx46oqqqqnRB17NgxdOnSxSp1Wkpj/Xt6esLV1RXOzs61I6iysjJrlWpR4pb1quTw\nvlfXrf0Dpr3vtXjE3JAZM2Zg0aJFmDlzJpydnfHBBx8AuD4TOzQ0FAaDAUePHoVOp0NiYiIUCgVe\neuklREdHW6KcVhMXF4cDBw7UHkd89913sXXrVlRXV2PatGl49dVX8cc//hFCCEybNg1BQUFWrti8\nGus/MjIS69evR//+/TFnzhwoFArMnTsXDzzwgJWrNo+mXnt711T/77zzDl588UUAQN++fTFs2DBr\nlmt2TfV/c1aus7MzQkJCMGnSJCtXbBk3B1lyet+r69b+TX3f45KcREREEsIFRoiIiCSEwUxERCQh\nDGYiIiIJYTATERFJCIOZiIhIQhjMREREEsJgJiIikhAGMxERkYT8PxLgBEPpYSAsAAAAAElFTkSu\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e660438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = PolynomialRegression(2)\n",
    "model.fit(X, y)\n",
    "y_test = model.predict(X_test)\n",
    "\n",
    "plt.scatter(X.ravel(), y)\n",
    "plt.plot(X_test.ravel(), y_test)\n",
    "plt.title(\"mean squared error: {0:.3g}\".format(mean_squared_error(model.predict(X), y)));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This reduces the mean squared error, and makes a much better fit.  What happens if we use an even higher-degree polynomial?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeYAAAFeCAYAAABQCrzXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlgVOW5+PHvmZnMTPaELBC2sIcdBVFAQLQCLmBdS1xY\n2tr2Vuut1V/1trbW1msXvbd6a9W6VFFsG7SCiKIigqCILLLIvgbCErLvyWS28/tjMpOFLJPJnDMz\nyfP5RzPMmXlPZnKe87zL8yqqqqoIIYQQIiwYQt0AIYQQQjSSwCyEEEKEEQnMQgghRBiRwCyEEEKE\nEQnMQgghRBiRwCyEEEKEEVOoGyCE0M++ffv4z//8T9avXx/qplzg1KlT/PKXv6S8vJzY2Fj++Mc/\nMmTIkAue99VXX/HUU0/hdDqJjo7mkUceYdy4cbz00kusWbMGRVEAKCkpoba2lh07duB2u3nuuefY\nsGEDdXV1zJw5k1/84hd6n6IQ/lGFED3G3r171auuuirUzWjVrbfeqn7wwQeqqqrqxo0b1euvv/6C\n59jtdnXatGnqwYMHVVVV1Q0bNqhz58694HmVlZXq3Llz1c8//1xVVVV99dVX1YULF6r19fWq3W5X\nFyxY4HsvIcKNZMyiW9i2bRt//vOfSU9P5+jRo0RHR3PfffexbNkyTp48yezZs30Z0oYNG3jhhRdw\nOp1YrVYeeughLrroIkpKSnj00UcpKSmhuLiYvn378swzz9CrVy+uuuoqbr75ZrZs2UJ+fj7XXnst\nP//5zy9oxz//+U+WL1+O2WzGYrHw29/+lqFDh7J9+3aeeOIJDAYD48ePZ9OmTbz55pucOXOGxx9/\nnNWrV/vOw/tzR+2ZMGECR44c4Wc/+xnjxo3j8ccfJz8/H6fTyfXXX88Pf/hDX5tef/11EhISGD58\neJu/w127dvE///M/1NXVYTAYuO+++7jiiitYuXIl//73v6mrqyM+Pp4bb7yx2c+vv/46zz33HGvW\nrMFkMjFo0CAeffRRUlJSWLhwIUlJSeTm5nL77beTkZHB8uXLefHFF5u9d0FBAbm5uVx33XUAzJw5\nk8cee4yDBw8yatQo3/OioqLYtGkTRqMRVVXJy8sjOTn5gnP54x//yMyZM5k+fToAq1at4uGHH8Zs\nNgPwl7/8haioKL+/X0LoKtR3BkIEw9atW9UxY8b4Mqm7775bzc7OVp1Op1paWqqOGTNGLSwsVE+e\nPKnOmzdPLS8vV1VVVY8ePapefvnlal1dnfr666+rL7/8su81f/CDH6ivvfaaqqqqeuWVV6p/+tOf\nVFVV1fPnz6vjx49Xz5w506wNLpdLHTt2rFpUVKSqqqquWrVKfeutt9T6+np16tSp6pYtW1RVVdX3\n3ntPHTlypHr27Fl169at6rx585qdh/fnjtrz/PPP+/5t0aJF6oYNG1RVVdX6+np10aJF6ocffqge\nPHhQnTZtmlpSUqKqqqo++uijrWbMFRUV6ty5c9WzZ8+qqqqqBQUF6hVXXKHm5+erK1asUC+99FK1\npqZGVVX1gp///e9/q9nZ2arNZlNVVVWfffZZ9fvf/76qqqp61113qY888kh7H52qqqq6e/du9dpr\nr2322O23366uX7++1ecXFxerM2bMUMeNG6euW7eu2b8dOXJEnTJlilpVVeV7bMKECeobb7yhLl68\nWL3hhhvUp59+WnW73R22S4hQkIxZdBv9+vVj5MiRAAwcOJD4+HiMRiPJycnEx8dTUVHBtm3bKC4u\nZsmSJagN1WhNJhOnTp1i0aJF7Nixg6VLl3Ly5EmOHTvGhAkTfK//rW99C4DevXuTkpJCRUUF/fr1\n8/27wWDg2muvZcGCBcyaNYvLL7+c+fPns3//fiwWC1OmTAFg/vz5/Pd//3eH59NRey655BIA6urq\n2L59O5WVlTzzzDO+xw4ePEh+fj7Tp0+nV69eACxYsIAvvvjigvfatWsXRUVF3Hvvvb7fi8Fg4PDh\nwwBkZWURExPje37Tnz///HNuvvlmLBaLr91/+9vfcDqdzdrZHrfb3erjBkPr81NTUlLYtGkTBw4c\nYMmSJbz99ttkZmYCsGzZMu68807i4uJ8z3c6nezZs4eXX34Zh8PBj370I5YtW8aiRYs6bJsQepPA\nLLoNbzell8nU+PX2Bhu3283UqVP585//7Pu38+fPk56ezlNPPcW+ffu45ZZbmDJlCk6n03ccgNVq\nbfb6aitl5p988kmOHTvGl19+ycsvv8y///1vHnjggQsCj9FoBPBNVPJyOBy+/++oPd7A6HK5AHxd\n6ABlZWVYLBbeeuutZsd437clt9vNsGHDWL58ue+xwsJCUlJSeO+995oF5abv7T22KZfLhcvl8r1v\ny2Nb07dvX4qLi5s9VlBQQJ8+fZo9Vl1dzVdffcXVV18NwOjRo8nKyuLIkSNkZmbidrv5+OOPWbly\n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\nW+UmnVX/+fn5Wrp0qT788ENJUllZme7evZtWwWzVf39/v65evaru7m5lZWWpoaFBly9f1tatW90q\n1zEzYd2LJZF1z5at7PXr16unp0eS1NPTo9LS0klfs2/fPq1evVrHjx9Pm22diX339fVpxYoVkXsf\nffSRHjx4oOHhYYVCIV2/fl0lJSVulWoLq/4l6ciRIwqHw2pra4ts7aQLq95ramr022+/6ZdfftG3\n336rbdu2pVUoS9b9L1myRM+fP4+8Iaq3t1cff/yxK3Xaxar/3NxczZ07V16vNzJBDQ8Pu1Wqrcxb\n51XNhHVvorf7lxJb96Y8Mb/Ljh071NjYqJ07d8rr9erkyZOS3rwTu7CwUK9evdKNGzcUDofV09Mj\nj8ej+vp6FRcX21GOY3w+n/7+++/I64itra26dOmSXrx4oYqKCjU3N2v37t0yxqiiokKLFi1yueLk\nsup/7dq16urq0oYNG1RTUyOPx6Pa2lp9/vnnLledHLGe+3QXq/+WlhbV1dVJktatW6ctW7a4WW7S\nxep//F25Xq9XS5cu1ddff+1yxfYYH7Jm0ro30dv9J7rucSQnAAAphANGAABIIQQzAAAphGAGACCF\nEMwAAKQQghkAgBRCMAMAkEIIZgAAUgjBDABACvk/kRCfmkgsu+oAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e174278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = PolynomialRegression(30)\n",
    "model.fit(X, y)\n",
    "y_test = model.predict(X_test)\n",
    "\n",
    "plt.scatter(X.ravel(), y)\n",
    "plt.plot(X_test.ravel(), y_test)\n",
    "plt.title(\"mean squared error: {0:.3g}\".format(mean_squared_error(model.predict(X), y)))\n",
    "plt.ylim(-4, 14);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When we increase the degree to this extent, it's clear that the resulting fit is no longer reflecting the true underlying distribution, but is more sensitive to the noise in the training data. For this reason, we call it a **high-variance model**, and we say that it **over-fits** the data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Just for fun, let's use IPython's interact capability (only in IPython 2.0+) to explore this interactively:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeYAAAFeCAYAAABQCrzXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xlg0/X9P/BneqZHeqdAC5RSmqIchRaRghRkduhEJwJS\nxBa2uTkPdCIiftnAeYyJ0/ETEa8NkM0VdTB1OK8fCt8JP4W2VEBsSik3bdP7zNW8f3+kDZSjR5o0\n7yTPx18kaZrXOymfZz7H6/1WCCEEiIiISAo+ri6AiIiILmAwExERSYTBTEREJBEGMxERkUQYzERE\nRBJhMBMREUnEz9UFEJFrHD58GA8//DB27drl6lIu891332HNmjVobW2FxWLBvffei9tvv/2yn/vy\nyy+xYsUKxMXF2e77+9//juDgYCxZsgRarRbBwcEAgOuvvx4rVqzotzEQ2YvBTOTFFAqFq0u4okce\neQRr1qzBpEmTUFFRgdmzZ2PcuHEYOnRop58rLCzEL37xC/zqV7+67HccPHgQ27dvh1qt7q+yiRyC\nwUwe59tvv8VLL72E2NhYlJSUICgoCEuWLMHWrVtx4sQJZGVl4cknnwRg3ePauHEjzGYzlEolli9f\njnHjxqG6uhqrVq1CdXU1qqqqEBcXh3Xr1iEqKgozZszAnXfeiX379uH8+fO45ZZb8Pjjj19Wxzvv\nvINt27YhICAAgYGB+P3vf4+kpCTs378fzz33HHx8fDB27Fjs2bMHf/vb33DmzBk888wz+Oijj2zj\n6LjdXT2pqanQarV49NFHMWbMGDzzzDM4f/48zGYzbr31VltwvfPOO9iyZQvCwsKQnJx81fewsLAQ\nf/rTn9Da2gofHx8sWbIE06ZNw44dO/D++++jtbUVKpUKd9xxR6fbW7ZswYYNG/Dxxx/Dz88Pw4YN\nw6pVqxAdHY2cnBxERESgrKwMCxYswKBBg7Bt2za8/vrrnV7baDTioYcewqRJkwAAAwYMQGRkJMrL\ny68YzP7+/vjkk08QHByM3/zmN5gwYQLOnDmD5uZmrF69GmfOnMGoUaOwYsUKhIeH2/+HRdRfBJGH\n+eabb8SoUaPE0aNHhRBC3HvvvSI7O1uYzWZRU1MjRo0aJSorK8WJEyfErFmzRF1dnRBCiJKSEjFl\nyhTR2toqtmzZIt58803b7/zlL38pNm3aJIQQ4sYbbxTPP/+8EEKI8vJyMXbsWHHmzJlONbS1tYnR\no0cLnU4nhBDigw8+EO+++64wGAwiIyND7Nu3TwghxIcffihGjhwpzp49K7755hsxa9asTuPouN1d\nPa+++qrtsdzcXPHll18KIYQwGAwiNzdX/Oc//xFHjx4VkydPFtXV1UIIIVatWiVmzJhx2ftXX18v\nZs6cKc6ePSuEEKKiokJMmzZNnD9/Xmzfvl1MnDhRNDc3CyHEZbfff/99kZ2dLfR6vRBCiPXr14tf\n/OIXQggh7rnnHrFy5cquProrysvLEzfeeKMwGAyXPbZkyRLxxRdfCCGEOHDggJg4caIoLy8XRUVF\n4qGHHhJVVVXCYrGIZ555RjzwwAO9fm0iV+AeM3mk+Ph4jBw5EgAwdOhQqFQq+Pr6IjIyEiqVCvX1\n9fj2229RVVWFxYsXQ7TPTOvn54eTJ08iNzcXBw4cwObNm3HixAkcO3YMqamptt//ox/9CIB1by46\nOhr19fWIj4+3Pe7j44NbbrkF8+fPx/Tp0zFlyhTcdtttOHLkCAIDA217g7fddhueffbZbsfTXT0T\nJkwAALS2tmL//v1oaGjAunXrbPcdPXoU58+fxw033ICoqCgAwPz58/Hf//73stcqLCyETqfDgw8+\naHtffHx8UFxcDABISUmxnbe99Pb//u//4s4770RgYKCt7tdeew1ms7lTnT31xhtvYOvWrfjLX/6C\ngICAyx5/+eWXbf9OT0/H+PHjsXfvXsyePRvr16+3PfbQQw/hhhtugNlshp8fN3skN/6Fkke6dCN+\n8ca4I2wsFgsyMjLw0ksv2R4rLy9HbGwsXnjhBRw+fBhz5szBpEmTYDabbc8DAKVS2en3iytMOb92\n7VocO3YMe/fuxZtvvon3338fS5cuhcVi6fRzvr6+AC4/32symWz/7q6ejmBsa2sDANshdACora1F\nYGAg3n333U7P6XjdS1ksFowYMQLbtm2z3VdZWYno6Gh8+OGHnUL54tfueO7F2tra0NbWZnvdS597\nNUajEU8++SRKS0vx7rvvYtCgQZf9TGNjI9555x3cd999ne738/PDgQMH0NDQgBkzZtjq8vHxueqY\niWTCdinyWpMmTcLXX3+N48ePAwB2796Nn/70pzAajfj666+xaNEi3H777YiMjMTevXsvC52u1NbW\nYvr06YiIiEBubi5+85vfoLi4GMOHD4dSqcRXX31le83a2loAQFRUFM6dO4eamhoIIfDFF1/Yfl9P\n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\nQKFQ4K233kJAQECXz9PpGu0u1J2p1SqvHTvA8XP8HL+3jt+bxw5Yx28Pu84xr1y5EitXrrTrBYmI\niOjqOMEIERGRRBjMREREEmEwExERSYTBTEREJBEGMxERkUQYzERERBJhMBMREUmEwUxERCQRBjMR\nEZFEGMxEREQSYTATERFJhMFMREQkEQYzERGRRBjMREREEmEwExERSYTBTEREJBEGMxERkUQYzERE\nRBJhMBMREUmEwUxERCQRBjMREZFEGMxEREQSYTATERFJhMFMREQkEQYzERGRRBjMREREEvGz50lC\nCDz11FMoLi5GQEAAnnvuOQwZMsTRtXksvV6PvLw9AIDs7EwolUoXV0RERLKwK5i/+OILGI1G5OXl\noaioCGvWrMGrr77q6No8kl6vx/z5O7Bv388AADt2bMK2bbMZzkREBMDOQ9n5+fmYOnUqACA1NRWH\nDx92aFGeLC9vT3so+wPwx759i217z0RERHYFc1NTE1Qqle22n58fLBaLw4oiIiLyVnYFc2hoKJqb\nm223LRYLfHx4HVlPZGdnIiNjEwAjACMyMjYjOzvT1WUREZEk7DrHnJaWhi+//BI333wzDh48CI1G\n06PnqdWq7n/IQ10Yuwq7duVi8+bPAQCLF+d6xfllb/7sAY6f4/fe8Xvz2O2lEEKI3j7p4quyAWDN\nmjVITEzs9nk6XWPvK/QAarXKa8cOcPwcP8fvreP35rED9n8psWuPWaFQ4Pe//71dL0hERERXxxPD\nREREEmEwExERSYTBTEREJBEGMxERkUQYzERERBKx66ps6jm9Xo/XXtuDxkY9F6wgIqJuMZidiAtW\nEBFRb/FQthNxwQoiIuotBjMREZFEGMxOxAUriIiot3iO2YmUSiW2bZuNnTs/b7/4i+eXiYioawxm\nJ1Mqlfj1r2/16onciYio53gom4iISCIMZiIiIokwmImIiCTCYCYiIpIIg5mIiEgiDGYiIiKJMJiJ\niIgkwmAmIiKSCIOZiIhIIgxmIiIiiTCYiYiIJMJgJiIikgiDmYiISCIMZiIiIonYtexjU1MTli1b\nhubmZphMJqxYsQLjxo1zdG1ERERex65g3rRpEyZPnozc3FyUlZXhsccew/bt2x1dGxERkdexK5h/\n9rOfISAgAABgNpsRGBjo0KKIiIi8VbfB/P7772PLli2d7luzZg1Gjx4NnU6H5cuXY+XKlU4rkIiI\n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\nzERERBL5/9+gZFXlFwhMAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e660b00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython.html.widgets import interact\n",
    "\n",
    "def plot_fit(degree=1, Npts=50):\n",
    "    X, y = make_data(Npts, error=1)\n",
    "    X_test = np.linspace(-0.1, 1.1, 500)[:, None]\n",
    "    \n",
    "    model = PolynomialRegression(degree=degree)\n",
    "    model.fit(X, y)\n",
    "    y_test = model.predict(X_test)\n",
    "\n",
    "    plt.scatter(X.ravel(), y)\n",
    "    plt.plot(X_test.ravel(), y_test)\n",
    "    plt.ylim(-4, 14)\n",
    "    plt.title(\"mean squared error: {0:.2f}\".format(mean_squared_error(model.predict(X), y)))\n",
    "    \n",
    "interact(plot_fit, degree=[1, 30], Npts=[2, 100]);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Detecting Over-fitting with Validation Curves\n",
    "\n",
    "Clearly, computing the error on the training data is not enough (we saw this previously). As above, we can use **cross-validation** to get a better handle on how the model fit is working.\n",
    "\n",
    "Let's do this here, again using the ``validation_curve`` utility. To make things more clear, we'll use a slightly larger dataset:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeYAAAFVCAYAAAA6zUwUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X1wVOXd//FPlIRVCUUxnXvsIG61trWd0VaKpI7BWmNV\nEJMCsgYCqWOrUCkjeodaFaiKlMyodRAVyl0CsRpqFWuMIlWmoQ/UpypVf63zm05udWh1KD4Q0UMW\nc+4/woZkk+zD2XP2XOec92vGGUmym+t7zma/ez19rxLbtm0BAAAjHOF3AwAAwGEkZgAADEJiBgDA\nICRmAAAMQmIGAMAgJGYAAAySU2LetWuX6uvrJUl///vfNXv2bM2dO1dXXnml3nvvPU8bCABAlGRN\nzOvXr9dNN92kZDIpSbr99tu1dOlSbdq0SdXV1Vq3bp3njQQAICqyJubx48drzZo1ff++66679MUv\nflGSdPDgQY0cOdK71gEAEDFZE3N1dbWOPPLIvn8ff/zxkqS//vWvevDBB9XQ0OBZ4wAAiJoRTh70\n5JNPau3atVq3bp2OPfbYrD9v27ZKSkqc/CoAACIl78T829/+Vr/+9a/V0tKi0aNH5/SYkpIS7dnT\nlXfjwqKiopz4id/vZvgmyvFHOXaJ+Csqyh09Lq/E3NPTo9tvv10nnHCCfvjDH6qkpEQTJ07UNddc\n4+iXAwCAgXJKzJ/73OfU2toqSXruuec8bRAAAFFGgREAAAxCYgYAwCAkZgAADEJiBgDAICRmAAAM\nQmIGAMAgJGYAAAxCYgYAwCAkZgAADEJiBgDAICRmAAAMQmIGAMAgJGYAAAxCYgYAwCB5nccMADCL\nZVlqbd0hSUokqhSLxXxuEQpFYgaAgLIsS7NmbdHOnd+TJG3ZskGbN9eSnAOOoWwACKjW1h2HknKp\npFLt3NnQ13tGcJGYAQAwCIkZAAIqkahSZeUGSd2SulVZ2axEosrvZqFAzDEDQEDFYjFt3lyr1tY2\nSVIiwfxyGJCYASDAYrGYGhou8LsZcBGJGQBCjO1UwUNiBoCQYjtVMLH4CwBCiu1UwUSPGQCGwTAw\n/ECPGQCGkBoGbmycpsbGaZo1a4ssy/K7WXlhO1Uw0WMGgCEMHAbWoWHgtkCtgGY7VTCRmAEgxNhO\nFTwMZQOQZVlqbt6m5uZtgRuu9QrDwPALPWYg4thSMzSGgeEXEjMQcWGYS/UKw8DwA0PZAAAYhMQM\nRBxzqYBZGMoGIo65VMAsJGYAzKUCBmEoGwAAg5CYAQAwCIkZAACDkJgBADAIi78AIIA4kjK8SMwA\n4CMnCTa9jOojj6zTtGljVVpaSpIOARIzAPjEaZ3ygWVULT333Eg999z0vJ4D5mKOGQB8MjDBlh6q\nU74jz2d5VtK8Ap8DJskpMe/atUv19fWSpLfeekt1dXWaM2eOfvrTn3raOABI4WjKwwaWUU363Ry4\nLGtiXr9+vW666SYlk703f+XKlVq8eLEeeOAB9fT06JlnnvG8kQCiLTXk29g4TY2N0zRr1pYhk3PQ\nkrfTOuWpMqpNTW1aseITTZr0P3k/B8yVdY55/PjxWrNmjRobGyVJr7/+uiZMmCBJqqqq0p///Ged\nf/753rYSQKTlcjRlEM+VLqROef8yqvX1FrXOQyRrYq6urtbu3bv7/m3bdt//H3PMMerq6vKmZQCQ\nh1zPlTZtm5EbdcqpdR4uea/KPuKIw6Pf+/fv1+jRo3N6XEVFeb6/KlSIn/ijrND4Fy6covb2FnV0\nzJEkTZ78gBYurBuQVMvLByfY8vLYgN9tWZZmznxYHR29a2ba21u0dWudp8mZex/t+J3IOzGfdtpp\neuGFF/SNb3xDO3bs0KRJk3J63J490e1ZV1SUEz/x+90M37gVf0vLJf2Gay9RV1dSXV2HFz5NmTJR\nlZUbtHNngySpsrJZU6bUDvjdzc3bDiXl3l51R8ccrV49uFftFu498TuRd2JesmSJbr75ZiWTSZ18\n8sm68MILHf1iwCnThiJRHNmGa90+V9r011mu7TM9DgxWYvefNPZQ1D81Eb878acv8KmsNH+BD/ff\nnPgPv34aJPX2qod6/bj1OvMq9lzb5/ffi0n33g9Oe8wUGEGguFOQAX7za1tT/21GTU1twyYp019n\nubbP9DgwNEpyAigqv7c15bKCOVW3AfADPWYEitOCDDCH6b04y7L0+ON7JW1U6nU2adIvjXqd5fp3\nwN9LMNFjRqC4vcAHSNfaukPPPfcDSZ9K+p2kpC655DNGvc5y/Tvg7yWYSMwInEKKKbBC1X+JRJW2\nbBm4rSmRqHXt+d27xzFJUyR1q7S0za3muSbXvwOKjwQPiRmR4ffcJnp52Ytz4x57/cHBFHxINReJ\nGZGRa8lGeM+rXpwb9zgKw79efkjtn/AXLpxS8PNFEYkZANKEffjXqw+p6Qm/vb1FLS2XhO6DjddY\nlY3IYIVqeKX2RSeT3RyB6KP0FfcdHXOMWnEfFPSYERlRGKKMovRe2llnrdPy5Zu1a9f/asKEU3xu\nnZmiMo8eVJTkLALK0hE/8XsXf3PzNjU2TlNvL82S9ITGjt2hvXtXSIr5WrbV5HvvxeKv9JKnkyc/\nEOmh7KIdYgEAfkpPKP2+I+lBSfXau/dSSS2S6ljkNwwv5tHTR6UWLqwbcAIYckNiBhAYQ60m3rjx\nokPDsp+VdPhIR2mOeguEVPvT2Ijqn/BjsRiJ2QEWfwEIjKHKeT722PPavLlWtbWvDvGIJAvAEDgk\nZiBE/Dq1yW+xWEx33331gFX38fhdWrHiE0fzy1G9jjADQ9lASIS9spllWUomk4rHb1Zn50/Uu7Dr\n8Griwavur3AUe9ivI8xHYgZCIsyVzQYmy+mKx+/UlVeeqPr6gQnTjQVNYb6OhaKMZ3GQmAHkrdhv\n0OnJsrPzWpWWtg36vSQO7zCSUDzMMQMhUazKZqk36MbGaWpsnKZZs7YYMQ/rVrvCUiHOrXny1PMs\nWnS/du68XKaeox0m9JiBkChWZTM/hnpzqVSVb7uG612HoUKcW73bgc8zTdJG9W5DC9b1CBoSMxAi\nYT18we1kmS1xBf06uvXhKf15pLmSnpR0MWU8PcRQNoC8+DXUm0qWDQ0XDJmU82nXUPuhwzcsa0lq\nP/RfbkPZuQx/19a+qqamNuaXPUSPGUBeTB3qNbVdfqipmajbbrtb+/YtkSSNHr1KNTXzMj4mc1W1\nBkm9Uwh33311ZK9rsXCIRRGYXMi+GIg/vPHnsgq6f/ymrJpOP2yhsrLZkx6gX/d+4MEektStpqbM\nQ9nDPSaRqFJr6w4lk92SSlRaWprzvQvzaz8XHGIBoKjyXWBk0nYbete5i8ViSiSqjLl3UcAcM1Ak\nYSvzmO88rRfzuoVc02xz1kHVWyGtW/H4ncpnHUCmOfpozMmbgx4zUAROepcmDPmazKQeuCkGXhNL\n8fhSXXnlGYMqpA2l/yhC77D1aLW27gjkHu6go8cMDMHt3m0+PQ5TC3iky3d1tturuenFDTbwmpSr\ns/MWlZaW5vxhJTVs/cQTXbrxxul9r7+amomhKLoSFPSYgTR+98RMq9WcayGOmpqLMvbyozava1mW\n7r9/h7q6LKNHPdLv71Cvv8cea4vUvfMbiRlI40VizKVylYlyLcSR64cZNwt3mHxN/fpwl+81Gaqd\nU6cOvZI46EVXgoShbKAIUr3Fpqa2rMUZTKrVnOtwsR/Dyvlc02Lza5g932syVDulEmNef1FFjxlI\n43ZPLDVfnXrufBbh9D7GnIRjGnpxgxV6TUpLS3n9+YwCI0XAJvvgxe/WqmjLslRf36aOjnpJUmVl\nbzWlxx57vuDndttQMedaiCPTzwXx/heqWAVMCuV1O6N47/tzWmCExFwEvDijG/9Q1ZTi8aXq7LxV\nUm+iNuENO32usX+7cvmQYlmWWlqe1Ysv/n9NmHCK6uvP7/u5Yt9/U7aaWZal9vbnA7f4y812Rvlv\nX6LyFxAYnZ2VMmXFdUqmBW/ZhkbTk/o772xQfX0xWp29LX5XF7v66inGJyamA8zD4i/AQ4lElSZP\nblFqIU08fpek83xulbtM2k9sUlsAp+gxwximDEG6KRaLaevWOq1endrrW6d58x4yYotP/+tdUzOx\naFuPwnifATcxx1wEzLNkjz/THGfQpcfvV2JKT8Tz5j014Ho7XZSWbQFR+ulSXt5nPxddDXVf+dsn\nfidIzEXAizN7/E6OqTNZ/zfphQunqKsr6Xt7+ifEePzmQwvQ3LnemT5s9L//xbjPfnzwGe4Dx7hx\nFfztRzx+JxjKBlyW/ibd3t6ilpZLcl7h7IX0xV2dnZNcfX6TFhD50ZbhFs/9939PL2o7EA4s/oIR\nTKp2lS7fAy3SFyB1dMxRa+uOIQ+n+OCDD3w6CvK8vI8FdIPJ9zld2I7pRHAwlF0EDOfkFr+Ji4Kc\nzIkON1wrKe3r+xSP36fOzsU5P3fhcTQc+l3NRSt0Ysocez7yve/DzW0XeyjbtGvLex9zzMbixRnc\n+J3Miaa/SU+e/IBaWi5Ra+uOtOd6TNKUvJ67EH69aQfx/ju9734u/jJxAWUQ772bijrHfPDgQS1Z\nskS7d+/WiBEjdOuttyoejztqABA26bWuFy6sU1dXclAN7nj8L+rsnFLUdpkyDxxGfl9f044LhXOO\n5pg7OjrU09Oj1tZWLViwQHfddZfb7QKM4HRONPUmnaqclfpa/5N/nn76h4GZb42aIM2FI3wc9ZhP\nOukkffrpp7JtW11dXSotLc3+ICCA3D7pKb1XxSk+ZgriCV8mn0+N/DiaY37nnXe0YMEC7d+/Xx98\n8IHWrl2rM844I+Njoj7PQPzex5/vHGqx5ly5/9GNP6oHeKRE+d5LRV789bOf/UwjR47Utddeq3ff\nfVdz585VW1ubysrKHDUCKJRlWbrwwgf7jlecPLlFW7fWZVxFm8/PY6DerUTPSpIaGr7NdcsgKtcq\nKnEWg6Oh7M985jMaMaL3oeXl5Tp48KB6enoyPibqn5qI39v4m5u3HUqyvdMqHR1ztHr18AtfMv28\n272OsN3/9NW/mzZlXv0btvjzUV5eqvPO25TztQqq4V4TVD5z1mN2tPhr3rx5ev311zV79mx973vf\n03XXXRe6FxqiaagiIBSXGIgTnHLX3PxsJK4Vrwl3OUrMRx99tH7+85/rV7/6lTZv3qyLL77Y7XYB\necl3Fe1wP88bDAC/UZIToZC+FSnbcGG+P4/D2EqUu4aGb0fiWvGacBeVv4ogynNskr/xO1mp7fax\ngWG8//lc1zDGn6uKinK9/fYeo1ZKe8XvymcmoiSnwXhx+hO/0xKFbiz+Mu3Yx0y83mIT5dd/lGOX\niJ9jH4E0TksUFlpaMdOxj6ZJb+uWLeFcNQwECXPMwBAKOfJvuGMfTcRiN8A8JGaEltMFKWyZAuAn\nEjNCy+nK60J7kekfCCZPfsDYFaqsps2skJETwCnmmBFqfhzFN9yxjykm1TMO4mENxcL8O/zCquwi\nYGVisOJ3e8tU//hNPMzea0G7/ynNzdvU2DhNqcWDUreamvI73ziosbuF+FmVDbjCy14kh9nDJCaN\n3uAwEjMwBD+GwGEW0883LjSpMlRvLhZ/AUXEYqvgMLlsqxs7B9gqZy56zEARsdgqWEwdOSl0SsSy\nLO3c+f/UmwK+I4nXoElIzECRmfpmj2g4PIT940Nf2SjpMlVWtho1VB9lDGUj8NhriqgpZEokfQhb\nmqva2ruNGqqPOnrMcMSv1Zzpv1cSC1gQOW5PiVRWnsbfjEFIzMibX6s5h/q9U6eWs/0IWYVxW5DT\nKRHTV5uDxAwH/NqLO9Tv/a//WuXp70TwsS1oIBYgmo85ZgTahAlfYPsRMmJb0GCp3nZDwwUkZQOR\nmJE3v/biDvV76+u/bexe06GwUA1ANtTKLoIw1ovNZ87OzfiDOFeYij+KdbIl/1//btc+z4ffsfuN\n+J3VyiYxF0FUXpzDJc2oxD+cVPz5HooQxA8hQzHh/vt1LU2I3U/EzyEW8BELbNzF9cxPtsRLURcE\nCXPM6FPI/KdJC2xMncfNZ27epOtpOjfqRgMmoccMSeHpoZkcB9tUvMFRmggbesyQVHgPzZRTk0zv\naea6TcWU6wmg+OgxwxX0Bt0V9uvp5mIsKlkhbFiVXQRBWJno5ZaSYsbv59aY4QTh/nspPX4vto2Z\nuoKde0/8TpCYiyAoL06v3tyKHb9pb9JBuf9eSY8/321jQca9J34nGMpGH6+3lBQrYbI1BkCQsfgL\nA3i11YgtLUhhYRuQGT1m9PFyqxFbWpAS9oVtQKFIzOhD8kSxMN0ADI+hbBQFw5cAkBt6zOjj5X5Q\nhi8BIDckZvTxOnkyfAkA2ZGYMQDJEwD8RWKGpyzL0v3371BXl2VEsQ8AMB2JGXnLtVCIySc9AYCp\nWJWNvORTKMS0k55MPacZAPojMSMvpiXbXFF5DEBQkJjhGZP2Lgf1AwWA6GGOOcQKOTRiuMfms9c5\ntf2qvf13hxZ/Mb8MANlw7GMR+HH0WSFn3mZ7bL4J34Sj3/w8p9mE+P0U5fijHLtE/EU/9nHdunXa\nvn27ksmk6urqNH36dKdPBQ8MV/c6kajKmlSz1cwO4l5nKo8BCApHifn555/Xyy+/rNbWVn388cf6\n5S9/6Xa74IFksjvS25eC+IECQPQ4Wvz1xz/+UaeeeqoWLFig+fPn61vf+pbb7UKBhlp4JZXktAAq\n06ItthwBgLcc9Zjff/99/etf/9LatWv19ttva/78+dq6dWvGxzgdaw+L4sdfru3b56q5+XeSpIaG\nuWpufnbwT5XHhmjb4MfGYjFZlqWZMx9WR0e9JKm9vUVbt9bl1OPm/hN/VEU5don4nXCUmMeMGaOT\nTz5ZI0aMUDwe18iRI/Xee+/puOOOG/YxUV8A4Ff806f39nS7upKaMmWiKisHrqieMqV22Lb1f2xX\nV1LNzdsOJeXeueeOjjlavTr7ec0sACH+qMYf5dgl4nf6ocTRUPaZZ56pP/zhD5Kkd999V5Zl6dhj\nj3XUABRPagFUU1ObmpraIjW/DABB4ajHfO655+rFF1/UjBkzZNu2li1bppKSErfbBg8UsgDKy/Oa\nAQC9HG+Xuv76691sBwKALUcA4D0qfyEvufa4+xchWbhwitfNAoDQIDHDdemVw9rbW9TScgm9awDI\nAYdYwHXpB0Z0dMzhwAixBxxAbugxY0iFHICBwdJHEaJWdQ1A7ugxY5BCzy5Orxw2efIDvh33aAqO\nnQSQK3rMGCTbIRbZpK/eXriwTl1dSa+aCwChQo8Znkit3m5ouIDhWmWuPw4A/dFjxiAUEnEfe8AB\n5IrEjEFIIt7g2EkAuSAxY0gkEQDwB4kZA7BNCgD8RWIOuXwSLXttAcB/rMoOsXz3I7PXFgD8R2IO\nMRItAAQPiRl92GsLAP5jjjnE8t2PzDYpAPAfiTnEnCRatkkBgL9IzCFHogWAYGGOGQAAg9BjDgkK\ngwBAOJCYQ4DCIAAQHgxlhwD7lQEgPEjMAAAYhMQcAhQGAYDwYI45BCgMAgDhQWIOCfYrA0A4kJjR\nhy1XAOA/EnOE9U/ENTUTNW/eU2y5AgCfkZgjKn3v83333anOzgXq3XKlQ1uu2hgeB4AiY1V2RKXv\nfe7svFbSdp9bBQAgMaPP2LHPii1XAOAvEnNEpe99ljZp796bFY8v1YoVjzK/DAA+ITFHVGrvc23t\nKklPSZojqUKdnbeotLSUpAwAPiExR1gsFlNl5WmSLpZEIgYAE5CYDWZZlpqbt6m5eZssy/Lkd1DO\nEwDMwnYpQxXrKEfKeQKAWUjMhhq4ncnbfcWU8wQAczCUDQCAQUjMhkqf+43H71JNzUS/mwUA8BiJ\n2VCxWEwbN16keHyppKfU2blA8+Y9ldMisGIsGgMAeIPEbLDHHntenZ23SrpUUvmheeYdGR+TWjTW\n2DhNjY3TNGvWFpIzAAQIiTlk0mtg55LMAQDmIDEbjD3GABA9BSXmvXv36txzz1VnZ6db7UE/qT3G\nTU1tampqy2kfM8kcAILN8T7mgwcPatmyZRSj8Fi+e4wpGAIAweY4Ma9atUqXX3651q5d62Z74AIK\nhgBAcDkayn700Uc1duxYnX322bJt2+02AQAQWSW2g8w6Z84clZSUSJL+8Y9/KB6P67777tPYsWNd\nbyAK07un+VlJUkPDtxnWBgDDOUrM/dXX1+uWW25RPB7P+HN79nQV8msCraKi3Jf40w/CqKz05iCM\nbPyK3xTEH934oxy7RPwVFeWOHlfwdqlUzxnmYU8zAARPwadLbdq0yY12AAAAUWAk1NjTDADBw3nM\nIcaeZgAIHhJzyLGnGQCChaFsAAAMQmIGAMAgJGYAAAxCYgYAwCAs/goYy7L6ioQkElWssgaAkCEx\nB0h6ic0tW/wpsQkA8A5D2QFCiU0ACD8SMwAABiExBwglNgEg/JhjDhBKbAJA+JGYA4YSmwAQbiRm\nH7DlCQAwHBJzkbHlCQCQCYu/iowtTwCATEjMAAAYhMRcZGx5AgBkwhxzkbHlCQCQCYnZB2x5AgAM\nh6FsAAAMQmIGAMAgJGYAAAxCYgYAwCAkZgAADEJiBgDAICRmAAAMQmIGAMAgFBjxGUdAAgD6IzH7\niCMgAQDpGMr2EUdAAgDSkZgBADAIidkHlmWpuXmbksmkzjprnTgCEgCQwhxzkaXPK0+a9D9aseIR\nlZaWcQQkAIAec7Glzyv/5S9XqLS0TA0NF5CUAQAkZgAATEJiLrJEokqVlRvEvDIAYCjMMRdZLBbT\n5s21am1tkyTmlQEAA5CYfRCLxdTQcIHfzQAAGIihbAAADEJiBgDAICRmAAAM4miO+eDBg/rJT36i\n3bt3K5lM6uqrr9Z5553ndttCidOkAACZOErMjz/+uI499lg1NTXpww8/VE1NDYk5B5wmBQDIxtFQ\n9kUXXaRFixZJknp6ejRiBIu7c8FpUgCAbBxl1KOOOkqS9NFHH2nRokW69tprXW0UAABRVWLbtu3k\ngf/+9791zTXXaM6cOaqtrXW7XaFkWZYuvPBBdXTMkSRNnvyAtm6tYygbANDHUWL+z3/+o7lz52rp\n0qWaNGlSTo/Zs6cr78aFRUVFeV/8UVz81T/+KCL+6MYf5dgl4q+oKHf0OEdD2WvXrtW+fft07733\nas2aNSopKdH69etVVlbmqBFRQtUvAEAmjhLzjTfeqBtvvNHttgAAEHkUGAEAwCAkZgAADEJiBgDA\nICRmAAAMQmIGAMAgJGYAAAxCkWvDRLEACQDgMBKzQTh9CgDAULZBOH0KAEBiBgDAICRmgyQSVaqs\n3CCpW1K3KiublUhU+d0sAEARMcdskFgsps2ba9Xa2iZJSiSYXwaAqCExG4bTpwAg2kjMHkptfSov\nj2nKlIn0fgEAWZGYPZK+9amykq1PAIDsWPzlEbY+AQCcIDEDAGAQErNH2PoEAHCCOWaP9N/61Lv4\ni/llAEB2JGYPpbY+VVSUa8+eLr+bAwAIAIayAQAwCIkZAACDMJTtMcuydP/9O9TVZXG+MgAgKxKz\nhzhfGQCQL4ayPUSREQBAvkjMAAAYhMTsIYqMAADyxRyzh1JFRtrbf3do8RfzywCAzEjMHovFYrr6\n6ikUGAEA5IShbAAADEJiBgDAICRmAAAMQmIGAMAgJGYAAAxCYgYAwCAkZgAADEJiBgDAICRmAAAM\nQmIGAMAgJGYAAAxCYgYAwCAkZgAADEJiBgDAII6OfbRtW8uXL9cbb7yhsrIyrVixQuPGjXO7bQAA\nRI6jHvMzzzyj7u5utba26rrrrtPKlSvdbhcAAJHkKDG/9NJLOueccyRJp59+ul577TVXGwUAQFQ5\nSswfffSRysvL+/49YsQI9fT0uNYoAACiytEc86hRo7R///6+f/f09OiIIzLn+IqK8ozfDzviJ/4o\ni3L8UY5dIn4nHPWYv/71r6ujo0OS9Morr+jUU091tVEAAERViW3bdr4P6r8qW5JWrlypeDzueuMA\nAIgaR4kZAAB4gwIjAAAYhMQMAIBBSMwAABiExAwAgEE8ScwHDhzQj370I82ePVtXXXWV3n///UE/\n09zcrMsuu0yzZs3SmjVrvGhG0dm2rWXLlimRSGju3Ll6++23B3x/+/btmjFjhhKJhB5++GGfWumN\nbLE/8cQTuuyyy1RXV6fly5f700gPZYs/ZenSpbrzzjuL3DrvZYv/b3/7m2bPnq3Zs2dr0aJF6u7u\n9qml3sgW/+OPP67vfve7mjlzph566CGfWumtXbt2qb6+ftDXw/y+199w8Tt677M9sGHDBnv16tW2\nbdt2e3u7fdtttw34/ltvvWVPnz6979+JRMJ+4403vGhKUW3bts3+8Y9/bNu2bb/yyiv2/Pnz+76X\nTCbt6upqu6ury+7u7ranT59u792716+mui5T7JZl2dXV1faBAwds27btxYsX29u3b/elnV7JFH/K\nQw89ZM+aNcu+4447it08z2WL/9JLL7Xfeust27Zt++GHH7Y7OzuL3URPZYv/7LPPtvft22d3d3fb\n1dXV9r59+/xopmd+8Ytf2FOnTrVnzZo14Othf99LGS5+p+99nvSYX3rpJVVVVUmSqqqqtHPnzgHf\nP+GEE7R+/fq+fx88eFAjR470oilFlamG+D//+U+NHz9eo0aNUmlpqc4880y98MILfjXVdZliLysr\nU2trq8rKyiSF5373l61+/Msvv6xXX31ViUTCj+Z5LlP8nZ2dGjNmjDZs2KD6+np9+OGHOumkk3xq\nqTey3f8vfelL+vDDD3XgwAFJUklJSdHb6KXx48cPOfIZ9ve9lOHid/re56gkZ3+/+c1vtHHjxgFf\nO/744zVq1ChJ0jHHHKOPPvpowPePPPJIjRkzRpK0atUqnXbaaRo/fnyhTfHdcDXEjzjiiEHfO+aY\nY9TV1eVHMz2RKfaSkhIdd9xxkqSWlhZ98skn+uY3v+lXUz2RKf49e/bonnvu0b333qsnn3zSx1Z6\nJ1P877//vl555RUtW7ZM48aN01VXXaWvfvWrOuuss3xssbsyxS9JX/jCFzR9+nQdffTRqq6u7nt/\nDIvq6moufNTgAAACbUlEQVTt3r170NfD/r6XMlz8Tt/7Ck7MM2bM0IwZMwZ8beHChX21tPfv3z/g\nxqR0d3frhhtuUHl5eWjmHDPVEB81atSADyj79+/X6NGji95Gr2Srn27btpqamvTmm2/qnnvu8aOJ\nnsoU/9atW/XBBx/o+9//vvbs2aMDBw7o85//vGpqavxqrusyxT9mzBideOKJfdUBzznnHL322muh\nSsyZ4n/jjTf0+9//Xtu3b9fRRx+t66+/Xk8//bS+853v+NXcogn7+14unLz3eTKU3b+WdkdHhyZM\nmDDoZ+bPn68vf/nLWr58eWiGdTLVED/55JP15ptvat++feru7tYLL7ygM844w6+mui5b/fSbb75Z\nyWRS9957b9+wTphkir++vl6PPPKINm3apB/84AeaOnVqqJKylDn+cePG6eOPP+5bEPXSSy/plFNO\n8aWdXskUf3l5uY466iiVlZX19aD27dvnV1M9ZacVkgz7+1669PglZ+99BfeYh3L55ZdryZIlqqur\nU1lZme644w5JvSuxx48fr08//VQvvviiksmkOjo6VFJSouuuu06nn366F80pmurqav3pT3/qm0dc\nuXKlnnjiCX3yySeaOXOmbrjhBl1xxRWybVszZ87UZz/7WZ9b7J5MsX/lK1/Ro48+qjPPPFP19fUq\nKSnR3Llzdf755/vcavdku/dhly3+FStWaPHixZKkr33ta5o8ebKfzXVdtvhTq3LLysp04oknqra2\n1ucWeyPVyYrK+1669PidvvdRKxsAAINQYAQAAIOQmAEAMAiJGQAAg5CYAQAwCIkZAACDkJgBADAI\niRkAAIP8HzCDdmmmq9YEAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111ae8e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X, y = make_data(120, error=1.0)\n",
    "plt.scatter(X, y);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.learning_curve import validation_curve\n",
    "\n",
    "def rms_error(model, X, y):\n",
    "    y_pred = model.predict(X)\n",
    "    return np.sqrt(np.mean((y - y_pred) ** 2))\n",
    "\n",
    "degree = np.arange(0, 18)\n",
    "val_train, val_test = validation_curve(PolynomialRegression(), X, y,\n",
    "                                       'polynomialfeatures__degree', degree, cv=7,\n",
    "                                       scoring=rms_error)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's plot the validation curves:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e144940>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_with_err(x, data, **kwargs):\n",
    "    mu, std = data.mean(1), data.std(1)\n",
    "    lines = plt.plot(x, mu, '-', **kwargs)\n",
    "    plt.fill_between(x, mu - std, mu + std, edgecolor='none',\n",
    "                     facecolor=lines[0].get_color(), alpha=0.2)\n",
    "\n",
    "plot_with_err(degree, val_train, label='training scores')\n",
    "plot_with_err(degree, val_test, label='validation scores')\n",
    "plt.xlabel('degree'); plt.ylabel('rms error')\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice the trend here, which is common for this type of plot.\n",
    "\n",
    "1. For a small model complexity, the training error and validation error are very similar. This indicates that the model is **under-fitting** the data: it doesn't have enough complexity to represent the data. Another way of putting it is that this is a **high-bias** model.\n",
    "\n",
    "2. As the model complexity grows, the training and validation scores diverge. This indicates that the model is **over-fitting** the data: it has so much flexibility, that it fits the noise rather than the underlying trend. Another way of putting it is that this is a **high-variance** model.\n",
    "\n",
    "3. Note that the training score (nearly) always improves with model complexity. This is because a more complicated model can fit the noise better, so the model improves. The validation data generally has a sweet spot, which here is around 5 terms.\n",
    "\n",
    "Here's our best-fit model according to the cross-validation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111c78ef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = PolynomialRegression(4).fit(X, y)\n",
    "plt.scatter(X, y)\n",
    "plt.plot(X_test, model.predict(X_test));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Detecting Data Sufficiency with Learning Curves\n",
    "\n",
    "As you might guess, the exact turning-point of the tradeoff between bias and variance is highly dependent on the number of training points used.  Here we'll illustrate the use of *learning curves*, which display this property.\n",
    "\n",
    "The idea is to plot the mean-squared-error for the training and test set as a function of *Number of Training Points*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.learning_curve import learning_curve\n",
    "\n",
    "def plot_learning_curve(degree=3):\n",
    "    train_sizes = np.linspace(0.05, 1, 20)\n",
    "    N_train, val_train, val_test = learning_curve(PolynomialRegression(degree),\n",
    "                                                  X, y, train_sizes, cv=5,\n",
    "                                                  scoring=rms_error)\n",
    "    plot_with_err(N_train, val_train, label='training scores')\n",
    "    plot_with_err(N_train, val_test, label='validation scores')\n",
    "    plt.xlabel('Training Set Size'); plt.ylabel('rms error')\n",
    "    plt.ylim(0, 3)\n",
    "    plt.xlim(5, 80)\n",
    "    plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see what the learning curves look like for a linear model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nGOxEREQVhMFORERUQRjsREREFYTBTkREVEEY7ERERBWEwU5ERFRBGOxEREQVhMFORERUQRjsRERE\nFYTBTkREVEEY7ERERBWEwU5ERFRBGOxEREQVhMFORERUQRjsREREFYTBTkREVEEY7ERERBWEwU5E\nRFRBGOxEREQVhMFORERUQRjsREREFYTBTkREVEEY7ERERBWEwU5ERFRBGOxEREQVhMFORERUQRjs\nREREFYTBTkREVEG0fO5cSonvfe97ePvtt2G32/GDH/wAU6ZMST6/cuVKPPnkk6ivrwcA3HzzzZg2\nbVo+i0RERFTR8hrsL774IqLRKB577DGsX78et912G+69997k85s2bcKKFSswZ86cfBaDiIioauQ1\n2NetW4dPfOITAIC5c+di48aNGc9v2rQJ9913H9rb27FgwQJcccUV+SwOERFRxcvrOfZAIACfz5fc\n1jQNpmkmt88991zcdNNNWLVqFdatW4eXX345n8UhIiKqeHltsXu9XgwMDCS3TdOEoqTqEpdeeim8\nXi8A4NRTT8XmzZtx6qmnDrs/v98NTVPzV+ARNDX5sr+oQlTTsQI83kpWTccKVNfxVtOxjlVeg/24\n447DX//6V3zqU5/CW2+9hcMOOyz5XCAQwMKFC/HCCy/A6XRizZo1WLRo0Yj76+4O5rO4w2pq8qG9\nvb8o711o1XSsAI+3klXTsQLVdbzVdKzA2CsxeQ32M888E6+88gouuOACAMBtt92G5557DqFQCIsX\nL8Z1112Hiy++GA6HAyeddBJOOeWUfBaHiIio4gkppSx2IUarWDW0aqodVtOxAjzeSlZNxwpU1/FW\n07ECY2+xc4IaIiKiCsJgJyIiqiAMdiIiogrCYCciIqogDHYiIqIKwmAnIiKqIAx2IiKiCsJgJyIi\nqiAMdiIiogrCYCciIqogDHYiIqIKwmAnIiKqIAx2IiKiCsJgJyIiqiAMdiIiogrCYCciIqogDHYi\nIqIKwmAnIiKqIAx2IiKiCsJgJyIiqiAMdiIiogrCYCciIqogDHYiIqIKwmAnIiKqIAx2IiKiCsJg\nJyIiqiAMdiIiogrCYCciIqogDHYiIqIKwmAnIiKqIAx2IiKiCsJgJyIiqiAMdiIiogrCYCciIqog\nDHYiIqIKwmAnIiKqIAx2IiKiCsJgJyIiqiAMdiIiogrCYCciIqogDHYiIqIKwmAnIiKqIAx2IiKi\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111c56518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curve(1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This shows a typical learning curve: for very few training points, there is a large separation between the training and test error, which indicates **over-fitting**.  Given the same model, for a large number of training points, the training and testing errors converge, which indicates potential **under-fitting**.\n",
    "\n",
    "As you add more data points, the training error will never increase, and the testing error will never decrease (why do you think this is?)\n",
    "\n",
    "It is easy to see that, in this plot, if you'd like to reduce the MSE down to the nominal value of 1.0 (which is the magnitude of the scatter we put in when constructing the data), then adding more samples will *never* get you there.  For $d=1$, the two curves have converged and cannot move lower. What about for a larger value of $d$?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nxV3zde+JiGhmSlYZDcOArutF30tS/ZZObTSVrmc+Omd8YzfH66aeWfaViIiaSska+ymnnILPfvaz\nOPnkkwEAjz32GFavXm17wZqFU9ZQSUQXrvK2zLfYljJVSygVhrvCExciIqqvksH+hS98AQcddBA2\nbtwIy7Jw0UUXYdWqVTUoWnOQRRmqpCJVZnP8RGPZG1XaSCOux6e9oh0REdVeyWA/44wz8Itf/AIr\nV66sRXmakktxlh3sfsdojb0ZhJJhBjsRURMpeY29q6sLzz33HFKp8juItZtKgk+RFHSo3qYJ9qSR\nQqKBJtAhIqKplayxb968OT9uPbcOuSAIeO2112wvXLNQRBmqpJS9pGpA68S20E4kjRQckmpz6WYu\nlApBk3vqXQwiIipDyWD/8Y9/jAMPPLAWZWlqTtmFlBEsa9+A5se20E4MJ0Yw291rc8lmLqEnkTJS\nUJvgJISIqN2VbIq/7LLLalGOpueStbL3bYapZccKpbg4DBFRMyhZY99vv/3wve99D8uXL4emjYbX\nBz7wAVsL1mwUSYEiKUiX0RyfWwym0ceyF4rpcaRNHYpY8k+GiIjqqOSn9MjICP7yl7/gL3/5S/4x\nQRBw33332VqwZuSSnQiWEexdzuarscPK9JDPlZ2IiBpTyWC///77Z/QGL730Em6++eZxr3PPPffg\noYceQiAQAABcd911WLx48Yzeq96cshPBZKjkfl7FA0WUmyvYAUT1KDrNDkgiZx4kImpUJYO9r68P\nV199Nfr6+vDAAw/giiuuwA033ID58+eXfPEf/vCHeOSRR+B2u8dt27x5MzZs2ICDDz54eiVvQKqk\nQBZl6KY+5X6CIMDv6MRQciQ/yqApWJlr7f7s7HlERNR4SnaeW79+Pc4//3y4XC50d3dj9erV+OpX\nv1rWiy9atAi33377hNs2b96Mu+66C5/5zGdw9913V1bqBuZSyhvTHtD80E0d4VTE5hJVVyQdhWEa\n9S4GERFNomSNfXh4GEcccQRuvvlmCIKAM888Ew888EBZL37cccehr69vwm0nn3wyzjrrLHg8Hlx8\n8cV45plnSs5u5/e7IMv1aQbu6fGWtV+H7kBfqHTwzfP34vXhfyClxOD3z5pp8arK7596fniHU4Df\nWd7PoxmU+7ttFe10vO10rEB7HW87HWulSga7pmnYs2dPvrn4ueeeg6rOfDzzueeeC48ns973ypUr\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111c5ab70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curve(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we see that by adding more model complexity, we've managed to lower the level of convergence to an rms error of 1.0!\n",
    "\n",
    "What if we get even more complex?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAFkCAYAAADSRRn0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8XGWhP/7P2WafJJOtTbekK20pFChgQaSh7FAWpS0g\nINpegZ+gfMGL2oIgiIC9iIiCFhcW5QrCZVEU8UIVr2ixFNrStHSje9M2y2Qmk1nP8vvjzEwmTdJk\nktky83m/Xu3MnHPmzHOadD7nec55nkcwDMMAERERFQUx3wUgIiKizGGwExERFREGOxERURFhsBMR\nERURBjsREVERYbATEREVkawGu67rWL58Oa6++mpcc8012L59e4/1q1atwsKFC3HVVVfhxRdfzGZR\niIiISkJWg33VqlUQBAG//e1vceutt+KRRx5JrlNVFQ899BCefvpp/PrXv8YLL7yA9vb2bBaHiIio\n6GU12M855xx897vfBQDs378f5eXlyXU7duxAfX09XC4XFEXBnDlzsGbNmmwWh4iIqOjJ2f4AURTx\nrW99C2+99RYee+yx5PJAIAC325187XQ60dnZme3iEBERFbWc3Dz30EMP4c0338Rdd92FcDgMAHC5\nXAgEAslturq6UFZWdtT9qKqW1XJSdt33tx9h8Qv/H8JqJN9FISIqWlmtsb/22ms4dOgQbrjhBlit\nVoiiCFE0zyUmT56M3bt3w+/3w2azYc2aNVi6dOlR9+f1BrNZ3H7V1LjR0lIarQnZPNZYVAUAtLYG\nYJWiWfmMdJXSzxYoreMtpWMFSut4S+lYAfN405HVYD/vvPOwbNkyXHvttVBVFcuXL8df/vIXhEIh\nLFq0CMuWLcOSJUtgGAYWLVqE2trabBaHiIio6GU12O12Ox599NF+1zc2NqKxsTGbRaACxAkFiYiy\nhwPUUA4J+S4AEVHRY7BTzjDWiYiyj8FORERURBjslAe8xk5ElC0MdiIioiLCYCciIioiDHbKOTbE\nExWvaDSK119/ddDbv/HG63j33f/rd/1vfvM0Pv54UyaKVjKyPlY8UYIg8L54olz63artWPPx4Yzu\n85TptVg8f0q/69vaWvGHP7yGBQsuH9T+LrxwwVHXX3vtF9MpHoHBTkREGfTss09h9+6dePrpX0DX\ndWzcuAGhUAjLln0bb7zxR2zZshk+nw9TpkzFsmV341e/ehJVVdWYMKEezz33DBRFwYEDB3DOOefh\n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\nH374Ic888wy33nqr7wE9wzA4c+bMJWNbuHAh48ePJzY2ltjYWH71q1+RmppKXl4eN9xwg+88l8vF\nlClTyMzM9P3R4vV6mTRpEk8++SQAFRUVui8v8m9a7ibSQVzqOdbS0lJOnDjB008/zbBhw9i2bVuT\nRNzcNZo7PmjQIP7yl78A9aPjnTt3Npm+BwgICGDhwoUUFhb6vvfw4cP07duXXr16UVpayq5duwBY\nuXIlzz33HAA2m61JTekGxcXFvPXWW762c+fOUVJSQp8+fZqcN3v2bOLi4hg1apTv2MCBA/n444+p\nqqrC4/GQkZHBZ599dsEYRa43GrGLdBDnJ9LGwsLCSElJ4YEHHiA0NJS77rqLmpoaampqWnSN5o6P\nHTuWgoICHnzwQbp3705EREST0T/UT+FPmTLF97AdwJAhQ5g8eTJ2u51Fixbxyiuv4HK5CAkJYf78\n+UD9Hw0LFy4kLCyM++67z3e9F154gZycHJKSkggODsbhcDBt2jR69uzJd999B8Df//53Pv30U/r1\n6+db/hcVFcWCBQsoKChg7NixeL1ehg0b9oOn7kWuV1ruJiJs2bIFwzBITEykoqKC5ORkVq1ahdPp\nvNZdE5HLpMQuIpw6dYoZM2ZQVVWFxWIhLS2tydS3iHQeSuwiIiImoofnRERETESJXURExESU2EVE\nRExEiV1ERMRElNhFRERM5P8BHc2JXkC7f1UAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111ca1898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curve(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For an even more complex model, we still converge, but the convergence only happens for *large* amounts of training data.\n",
    "\n",
    "So we see the following:\n",
    "\n",
    "- you can **cause the lines to converge** by adding more points or by simplifying the model.\n",
    "- you can **bring the convergence error down** only by increasing the complexity of the model.\n",
    "\n",
    "Thus these curves can give you hints about how you might improve a sub-optimal model. If the curves are already close together, you need more model complexity. If the curves are far apart, you might also improve the model by adding more data.\n",
    "\n",
    "To make this more concrete, imagine some telescope data in which the results are not robust enough.  You must think about whether to spend your valuable telescope time observing *more objects* to get a larger training set, or *more attributes of each object* in order to improve the model.  The answer to this question has real consequences, and can be addressed using these metrics."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "We've gone over several useful tools for model validation\n",
    "\n",
    "- The **Training Score** shows how well a model fits the data it was trained on. This is not a good indication of model effectiveness\n",
    "- The **Validation Score** shows how well a model fits hold-out data. The most effective method is some form of cross-validation, where multiple hold-out sets are used.\n",
    "- **Validation Curves** are a plot of validation score and training score as a function of **model complexity**:\n",
    "  + when the two curves are close, it indicates *underfitting*\n",
    "  + when the two curves are separated, it indicates *overfitting*\n",
    "  + the \"sweet spot\" is in the middle\n",
    "- **Learning Curves** are a plot of the validation score and training score as a function of **Number of training samples**\n",
    "  + when the curves are close, it indicates *underfitting*, and adding more data will not generally improve the estimator.\n",
    "  + when the curves are far apart, it indicates *overfitting*, and adding more data may increase the effectiveness of the model.\n",
    "  \n",
    "These tools are powerful means of evaluating your model on your data."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
